/****************************************************************************************************** */
var global_pagesize = 20;
var global_allstate = -1;
/****************************************************************************************************** */
function isNull(val){
	return val == null || val == "undefined";
}
function isBlank(val){
	return isNull(val) || val == "" || val.length<=0;
}
// 获取数据，发送 get ajax 请求, 如果没有登录，弹出登陆框，刷新页面
function sendGet(surl, postData, funcname){
	sendHttp(surl, "GET", postData, funcname);
}
// 提交数据，发送 post ajax 请求, 如果没有登录，弹出登陆框，提示提交
function sendPost(surl, postData, funcname){
	sendHttp(surl, "POST", postData, funcname);
}
// 发送 HTTP ajax 请求
function sendHttp(surl, method, postData, funcname){
	$.ajax({
		url: surl,
		type: method,
		data: postData,
		cache: false,
		dataType: 'json',
		success: function(response){
			//console.log("ajax sucssce: " + response);
			if (checkLogin(response, method)){
				typeof funcname === "function" ? funcname(response) : false;
			}
		},
		error:function(response) {
			parent.alertMsg('操作失败！请联系管理员！ajax error:' + JSON.stringify(response));
			console.log("ajax error: " + JSON.stringify(response));
		},
	});
}
// 检测登录，如果没有登录，弹出登陆框
function checkLogin(response, method, funcname){
	if (isJson(response) && response.hasOwnProperty("code") && response.code == 401 ){
		// layui.use('layer', function(){
		// 	var layer = layui.layer;
		// 	var loginurl = '/admin/login?f=' + method + "&callback=" + (typeof funcname === "function" ? funcname : "");
		// 	layer.open({
		// 		type: 2, 
		// 		title: false,
		// 		closeBtn: false, 
		// 		scrollbar: false,
		// 		content: [loginurl, 'no'],
		// 		area: ['500px', '500px'],
		// 	}); 
		//   });   
		//window.top.location.href = '/admin/login';
		// layerMsg("您还没有登录！请点击[确定]，先登录！", function(){
		// 	window.top.goLoginPage();
		// });
		window.top.goLoginPage();
		return false; 
	}
	return true;
}
// layerui msg
function alertMsg(msg){
	layui.use('layer', function(){
		var layer = layui.layer;
		layer.msg(msg); 
	});   
}
// 
function layerMsg(msg, funcname){
	layui.use('layer', function(){
		var layer = layui.layer;
		layer.open({
			content: msg,
			yes: function(index, layero){
			  funcname();
			  layer.close(index); //如果设定了yes回调，需进行手工关闭
			}
		  });   
	});   	
}
function layerMsg_close(){
	layui.use('layer', function(){
		var layer = layui.layer;
		layer.closeAll();  
	});   	
}
//判断obj是否为json对象
function isJson(obj){
	var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase().indexOf("[object ")>=0; 
	return isjson;
}
// 判断key是否为json属性
function isJsonProps(obj, key){
	return isJson(obj) && obj.hasOwnProperty(key);
}
// 获取json对象属性值
function getJsonData(obj, key){
	if(isJsonProps(obj, key)){return obj[key];}
	return "";
}
// 以字符开始
function startWith(sval, str){     
  var reg=new RegExp("^"+str);     
  return reg.test(sval);        
}  
// 以字符结尾
function endWith(sval, str){     
  var reg=new RegExp(str+"$");     
  return reg.test(sval);        
}
// 去除首尾字符
function trim(sval, c){
	if(c){
		return sval.replace(new RegExp('^\\'+c+'+|\\'+c+'+$', 'g'), '');
	}
	return sval.replace(/(^\s*)|(\s*$)/g, "");
}
// 去除开始字符
function ltrim(sval, c){
	if(c){
		return sval.replace(new RegExp('^\\'+c+'+', 'g'), '');
	}
	return sval.replace(/(^\s*)/g,"");
}
// 去除末尾字符
function rtrim(sval, c){
	if(c){
		return sval.replace(new RegExp('\\'+c+'+$', 'g'), '');
	}
	return sval.replace(/(\s*$)/g,"");
}
// 获取文件后缀名，不含'.'
function getFileExt(filename){
	var index1=filename.lastIndexOf(".");
	var index2=filename.length;
	var suffix=filename.substring(index1+1,index2);//后缀名
	return suffix;
}
// 绑定json.list 到select
function bindSelectJSONProps(selid, jsonData, jsonKey, colname, colval, defval){
	if (isJsonProps(jsonData, jsonKey)){
		bindSelectJSON(selid, jsonData[jsonKey], colname, colval, defval)
	}else{
		console.log('is not json or props');
	}
}
// 绑定json到select
function bindSelectJSON(selid, jdata, colname, colval, defval){
	for (var i = 0; i < jdata.length; i++) {
		var pro = jdata[i];
		document.getElementById(selid).options.add(new Option(pro[colname], pro[colval]));
	}
	if (defval != null){
		document.getElementById(selid).value=defval;
	}
}
// 绑定TreeData到select
function bindSelectTreeProps(selid, jdata, jkey, colname, colval, defval, colpid, pidval, level){
	if (isJsonProps(jdata, jkey)){
		bindSelectTree(selid, jdata[jkey], colname, colval, defval, colpid, pidval, level)
	}
}
function bindSelectTree(selid, jdata, colname, colval, defval, colpid, pidval, level){
	var childdata = jdata.filter(function (e) { return e[colpid] == pidval; });
	if (isJson(childdata)){
		for (var i = 0; i < childdata.length; i++) {
			//alert(menu_node1[i].menuname);
			var pro = childdata[i];
			var txtname = "";
			for(j=0,jend=level-1;j<level;j++){ 
				if (j == jend){ txtname += '├─'; }
				else{ txtname += '　'; }
			}
			txtname += pro[colname];
			document.getElementById(selid).options.add(new Option(txtname, pro[colval]));

			bindSelectTree(selid, jdata, colname, colval, defval, colpid, pro[colval], level+1);
		}
	}
}
// 前面补零
function prefixInt(num, length) {  
	 	return (Array(length).join('0') + num).slice(-length);  
} 
// 获取查询参数值
function getUrlParam(name) {
		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
		var r = window.location.search.substr(1).match(reg);
		if (r != null) return unescape(r[2]); return null;
}

// 转换数据状态
function formatState(state){
	if (state == 1){
		return "启用";
	}else if (state == 0){
		return "禁用";
	}else if (state == -1){
		return "删除";
	}else{
		return state;
	}
}
function formatSex(sexid){
	if (sexid == 1){
		return "男";
	}else if (sexid == 2){
		return "女";
	}else{
		return '保密';
	}
}
function formatNullValue(source){
	if (source == null || source == 'undefined'){
		return "";
	}
	return source;
}
// 日期格式化 formatDate(new Date(Date.parse(d.enact_time.replace(/-/g,"/"))), 'yyyy-MM-dd')
function formatDate(date, formatStr) {   
    var o = {   
		"M+" : date.getMonth()+1,                 //月份   
		"d+" : date.getDate(),                    //日   
		"h+" : date.getHours(),                   //小时   
		"m+" : date.getMinutes(),                 //分   
		"s+" : date.getSeconds(),                 //秒   
		"q+" : Math.floor((date.getMonth()+3)/3), //季度   
		"S"  : date.getMilliseconds()             //毫秒   
	  };   
	  if(/(y+)/.test(formatStr))   
	  formatStr=formatStr.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));   
	  for(var k in o)   
		if(new RegExp("("+ k +")").test(formatStr))   
		formatStr = formatStr.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
	  return formatStr;
}

function bytesToSize(bytes) {
    if (bytes === 0) return '0 B';
    var k = 1000, // or 1024
        sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
        i = Math.floor(Math.log(bytes) / Math.log(k));
 
   return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
}

function getArticleCatIconUrl(caticon){
	if (isNull(caticon)) return '/front/img/def_chanel.png';
	else return caticon;
}